package com.clhbolg.service;

import com.clhbolg.domain.bo.PhotoBo;
import com.clhbolg.domain.vo.PhotoVo;
import com.clhbolg.model.vo.request.*;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 照片Service接口
 *
 * @author cailinhu
 * @date 2023-02-08
 */
public interface IPhotoService {

    /**
     * 查询照片
     */
    PhotoVo queryById(Long id);

    /**
     * 查询照片列表
     */
    TableDataInfo<PhotoVo> queryPageList(PhotoBo bo, PageQuery pageQuery);

    /**
     * 查询照片列表
     */
    List<PhotoVo> queryList(PhotoBo bo);

    /**
     * 新增照片
     */
    Boolean insertByBo(PhotoBo bo);

    /**
     * 修改照片
     */
    Boolean updateByBo(PhotoBo bo);

    /**
     * 校验并批量删除照片信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 根据相册id获取照片列表
     *
     * @param conditionVO
     * @param pageQuery
     * @return
     */
    TableDataInfo listPhotos(ConditionVO conditionVO, PageQuery pageQuery);

    /**
     * 保存相册里面图片
     * @param photos
     */
    void savePhotos(PhotosVO photos);

    void updatePhoto(PhotoInfoVO photoInfoVO);

    void updatePhotosAlbum(PhotoVO photoVO);

    void DeleteOrRecoverPhotos(DeleteVO deleteVO);

    /**
     * 真实删除相册
     * @param photoIds
     */
    void deletePhotos(List<Long> photoIds);

//    /**
//     * 查看后台相册列表
//     *
//     * @param conditionVO
//     * @return
//     */
//    TableDataInfo<PhotoAlbumAdminDTO> listPhotoAlbumsAdmin(ConditionVO conditionVO);
}
